
$(function(){
    
    FechaConfig();
    
    $("#txtFechaProdMov").datepicker({dateFormat:'dd/mm/yy'});
    $("#txtFechaProdMov").datepicker("setDate",new Date());
    
    $("#txtCantProdMov").keypress(function(e){
        return solonumeros(e);
    });
    
    $("#txtOrdenCompra").keypress(function(e){
        return solonumeros(e);
    });
    
    $("#lstAlmProd").change(function(){
        buscar();
    });
    $("#btnBuscarProdMov").click(function(){
        buscar();
    });
    $("#txtProdMovSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    
    $("#btnGrabar").click(function(){
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
        if(filas!=""){
            if (filas.length > 0) {
                if (filas.length == 1) {
                    var codigoSel=jQuery("#grid").jqGrid('getRowData',filas[0]).codigo;
                    validarCantidad(codigoSel);
                } else {
                    alert("Debe seleccionar sólo un elemento de la lista.");
                }
            } else {
                alert("Debe seleccionar un Producto.");
            }
        }else{
            alert("Debe seleccionar un Producto."); 
        }
    });
    
    $("#lstMovimientoProdMov").change(function(){
        var movimiento = $("#lstMovimientoProdMov").val();
        
        if(movimiento == 43 || movimiento == "00"){
            $('#txtNombreProvMov').attr('class','requerido');
            $('#txtNombreProvMov').removeAttr('disabled');
            
            $('#txtOrdenCompra').attr('class','requerido');
            $('#txtOrdenCompra').removeAttr('disabled');
        }else{
            $('#txtNombreProvMov').attr('disabled','disabled');
            $('#txtNombreProvMov').removeAttr('class');
            $('#hidProvMovCod').val("001");
            
            $('#txtOrdenCompra').attr('disabled','disabled');
            $('#txtOrdenCompra').removeAttr('class');
        }
    });
    
    listarAlmacen("lstAlmProd","Todos");
    listarMovimiento("lstMovimientoProdMov","Seleccione");
    listarMotivo("lstMotivoProdMov","Seleccione");
    ProveedorAutoCompletar('txtNombreProvMov','hidProvMovCod');
    
    buscar();
    generarCodigo();

    setInterval("cronometro()",1000);
});

var generarCodigo = function(){
    var transaccion = {opc:'cod'};
    $.ajax({
        data:transaccion,
        url:'ajax/ajaxProductoMovimiento.php',
        type:'POST',
        success:function(response){
            var transaccion = $.parseJSON(response);
            $("#txtCodigoTrans").val(transaccion.codigoNuevo);
        }
    });
};

var validarCantidad = function(codigo){
    if(ValidarRequeridos()){
        var cantidad = {
            opc:'valCant',
            codigo:codigo,
            cantidad:$("#txtCantProdMov").val(),
            cod_movimiento:$("#lstMovimientoProdMov").val()
        };
        $.ajax({
            data:cantidad,
            url:'ajax/ajaxProductoMovimiento.php',
            type:'POST',
            success:function(response){
                if(response == 2){
                    grabar(codigo);
                }else if(response == 1){
                    msgError("No hay suficiente stock en el Almacen","txtCantProdMov");
                    alert("No hay suficiente stock en el Almacen");
                }else if(response == 0){
                    msgError("La cantidad supera el Stock Maximo.","txtCantProdMov");
                    alert("La cantidad supera el Stock Maximo.");
                }
            }
        });
    }
};

var grabar = function(codigo){
    var movimiento = {
        opc:'ins',
        codigo:codigo,
        cod_movimiento: $("#lstMovimientoProdMov").val(),
        cod_motivo:$("#lstMotivoProdMov").val(),
        cod_proveedor:$("#hidProvMovCod").val(),
        fecha_registro:$("#txtFechaProdMov").val(),
        cantidad:$("#txtCantProdMov").val(),
        duracion:$("#txtCronometro").val(),
        num_doc:$("#txtOrdenCompra").val()
    };
    $.ajax({
        data:movimiento,
        url:'ajax/ajaxProductoMovimiento.php',
        type:'POST',
        success:function(response){
            alert(response);
            buscar();
            limpiarProductoMovimiento();
            reiniciarCronometro();
        }
    });
};
var reiniciarCronometro = function(){
    $("#txtHoras").val(0);
    $("#txtMinutos").val(0);
    $("#txtSegundos").val(0);
};
var limpiarProductoMovimiento = function(){
    
    $("#lstMovimientoProdMov").val("00");
    $("#lstMotivoProdMov").val("00");
    $("#txtCantProdMov").val("");
    $("#txtNombreProvMov").val("");
    $("#hidProvMovCod").val("");
    
    msgError("","lstMovimientoProdMov");
    msgError("","lstMotivoProdMov");
    msgError("","txtCantProdMov");
    msgError("","txtNombreProvMov");
    
    generarCodigo();
};

var buscar = function() {
    
    var vcodigo = '';
    var vproducto = $("#txtProdMovSearch").val();
    var vcod_almacen = $("#lstAlmProd").val();
    var vurli='ajax/ajaxProductoAlmacen.php?opc=bus&nd='+new Date().getTime()+'&codigo='+vcodigo+'&producto='+vproducto+'&cod_almacen='+vcod_almacen;
    
    var producto = {
        opc:"bus",
        codigo:'',
        producto: $("#txtProdMovSearch").val(),
        cod_almacen: $("#lstAlmProd").val()
    };
    $("#grid").jqGrid("clearGridData", true);
    $("#grid").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:producto}).trigger('reloadGrid');
    
    jQuery("#grid").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:producto,
        colNames: ['ID','Codigo Producto','Producto','Codigo Almacen', 'Almacen','Stock Actual','Stock MAX.','Stock MIN.','Fecha'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 10,sorttype:"string"},
                    {name: 'cod_producto',index: 'cod_producto',width: 0,sorttype:"string",hidden:true},
                    {name: 'producto',index: 'producto',width: 100,sorttype:"string"},
                    {name: 'cod_almacen',index: 'cod_almacen',width: 0,sorttype:"string",hidden:true},
                    {name: 'almacen',index: 'almacen',width: 70,sorttype:"string"},
                    {name: 'stock_actual',index: 'stock_actual',width: 30,sorttype:"string"},
                    {name: 'stock_max',index: 'stock_max',width: 30,sorttype:"string",hidden:true},
                    {name: 'stock_min',index: 'stock_min',width: 30,sorttype:"string",hidden:true},
                    {name: 'fecha_crea',index: 'fecha_crea',width: 40,sorttype:"string",hidden:true}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:true,
        width: "550",
        height: "155",
        caption: "Productos x Almacenes"
    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});